package useDeprecatedAPI;


import com.google.gson.JsonArray;
import com.google.gson.JsonPrimitive;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;


/*
弃用方法： gson2.9.1
jsonArray.getAsCharacter():用来从一个 JsonArray 中获取指定索引位置的元素，并将其转换为 Character 类型
 */
/*
函数调用说明：
如果jsonArray的getAsCharacter弃用替换，影响firstChar和shuffleChar，这样的话，两个字符随机组成的jsonArray会受影响
最后的finalChar也会受影响
 */
public class JsonArrayCharacterManipulation {
    public static void processUserInfo() {
        JsonArray jsonArray = new JsonArray();
        jsonArray.add(new JsonPrimitive("ABC"));
        System.out.println("Original JsonArray: " + jsonArray);

        char firstChar=jsonArray.getAsCharacter();
        System.out.println("firstChar:"+firstChar);

        //  获取字符串 "ABC" 并将其打乱顺序
        String str = jsonArray.get(0).getAsString();  // 获取 "ABC"
        List<Character> charList = new ArrayList<>();
        for (char c : str.toCharArray()) {
            charList.add(c);  // 将每个字符添加到列表中
        }

        //  打乱字符列表顺序
        Collections.shuffle(charList);
        StringBuilder shuffledStr = new StringBuilder();
        for (char c : charList) {
            shuffledStr.append(c);  // 将打乱后的字符拼接成新的字符串
        }

        //  将打乱后的字符串重新添加到 JsonArray
        JsonArray shuffledJsonArray = new JsonArray();
        shuffledJsonArray.add(new JsonPrimitive(shuffledStr.toString()));  // 添加新的字符串

        System.out.println("Shuffled JsonArray: " + shuffledJsonArray);

        char shuffleChar=shuffledJsonArray.getAsCharacter();
        System.out.println(shuffleChar);

        //  将 firstChar 和 shuffleChar 组合成一个字符串，进行随机排列和重复
        List<Character> combinedList = new ArrayList<>();
        combinedList.add(firstChar);
        combinedList.add(shuffleChar);

        //  随机设置重复次数（最大重复次数为 10）
        Random random = new Random();
        int repeatCount = random.nextInt(10) + 1;  // 随机次数，范围是 1 到 10

        StringBuilder finalString = new StringBuilder();
        for (int i = 0; i < repeatCount; i++) {
            Collections.shuffle(combinedList);  // 每次打乱字符顺序
            for (char c : combinedList) {
                finalString.append(c);  // 拼接到最终字符串
            }
        }

        //  将最终的字符串添加到 JsonArray
        JsonArray finalJsonArray = new JsonArray();
        finalJsonArray.add(new JsonPrimitive(finalString.toString()));  // 添加生成的字符串

        System.out.println("Final JsonArray with random shuffled characters: " + finalJsonArray);


        char finalChar=finalJsonArray.getAsCharacter();
        System.out.println(finalChar);

    }

//    public static void main(String[] args) {
//        processUserInfo();
//    }


}
